1. Field of the Invention
The present invention relates to generation of extensible markup language (XML) documents for development of voice enabled web applications within a hypertext markup language (HTML) and hypertext transport protocol (HTTP) framework.
2. Description of the Related Art
The evolution of the public switched telephone network has resulted in a variety of voice applications and services that can be provided to individual subscribers and business subscribers. Such services include voice messaging systems that enable landline or wireless subscribers to record, playback, and forward voice mail messages. However, the ability to provide enhanced services to subscribers of the public switched telephone network is directly affected by the limitations of the public switched telephone network. In particular, the public switched telephone network operates according to a protocol that is specifically designed for the transport of voice signals; hence any modifications necessary to provide enhanced services can only be done by switch vendors that have sufficient know-how of the existing public switched telephone network infrastructure.
An open standards-based Internet protocol (IP) network, such as the World Wide Web, the Internet, or a corporate intranet, provides client-server type application services for clients by enabling the clients to request application services from remote servers using standardized protocols, for example hypertext transport protocol (HTTP). The web server application environment can include web server software, such as Apache, implemented on a computer system attached to the IP network. Web-based applications are composed of HTML pages, logic, and database functions. In addition, the web server may provide logging and monitoring capabilities.
In contrast to the public switched telephone network, the open standards-based IP network has enabled the proliferation of web based applications written by web application developers using ever increasing web development tools. Hence, the ever increasing popularity of web applications and web development tools provides substantial resources for application developers to develop robust web applications in a relatively short time and an economical manner. However, one important distinction between telephony-based applications and web-based applications is that telephony-based applications are state aware, whereas web-based applications are stateless.
In particular, telephony applications are state aware to ensure that prescribed operations between the telephony application servers and the user telephony devices occur in a prescribed sequence. For example, operations such as call processing operations, voicemail operations, call forwarding, etc., require that specific actions occur in a specific sequence to enable the multiple components of the public switched telephone network to complete the prescribed operations.
The web-based applications running in the IP network, however, are state-less and transient in nature, and do not maintain application state because application state requires an interactive communication between the browser and back-end database servers accessed by the browsers via a HTTP-based web server. However, an HTTP server provides asynchronous execution of HTML applications, where the web applications in response to reception of a specific request in the form of a URL from a client, instantiate a program configured for execution of the specific request, send an HTML web page back to the client, and terminate the program instance that executed the specific request. Storage of application state information in the form of a xe2x80x9ccookiexe2x80x9d is not practical because some users prefer not to enable cookies on their browser, and because the passing of a large amount of state information as would normally be required for voice-type applications between the browser and the web application would substantially reduce the bandwidth available for the client.
Commonly-assigned, copending application Ser. No. 09/480,485, filed Jan. 11, 2000, entitled Application Server Configured for Dynamically Generating Web Pages for Voice Enabled Web Applications the disclosure of which is incorporated in its entirety herein by reference, discloses an application server that executes a voice-enabled web application by runtime execution of extensible markup language (XML) documents that define the voice-enabled web application to be executed. The application server includes a runtime environment that establishes an efficient, high-speed connection to a web server. The application server, in response to receiving a user request from a user, accesses a selected XML page that defines at least a part of the voice application to be executed for the user. The XML page may describe any one of a user interface such as dynamic generation of a menu of options or a prompt for a password, an application logic operation, or a function capability such as generating a function call to an external resource. The application server then parses the XML page, and executes the operation described by the XML page, for example dynamically generating an HTML page having voice application control content, or fetching another XML page to continue application processing. In addition, the application server may access an XML page that stores application state information, enabling the application server to be state-aware relative to the user interaction. Hence, the XML page, which can be written using a conventional editor or word processor, defines the application to be executed by the application server within the runtime environment, enabling voice enabled web applications to be generated and executed without the necessity of programming language environments.
Hence, web programmers can write voice-enabled web applications, using the teachings of the above-incorporated application Ser. No. 09/480,485, by writing XML pages that specify respective voice application operations to be performed. The XML documents have a distinct feature of having tags that allow a web browser (or other software) to identify information as being a specific kind or type of information. Unlike hypertext markup language (HTML) documents, however, XML documents lack universal resource locators (URLs) that allow a web browser (or other software) to link from document to document; rather, the location of referenced XML documents needs to be determined by an application server during runtime execution. Although there is a proposal with the World Wide Web Consortium entitled xe2x80x9cXlinkxe2x80x9d for an XML Linking Language, located on the Internet at xe2x80x9chttp://www.w3.org/TR/xlink/xe2x80x9d, this proposal has yet to be ratified.
Hence, XML documents currently lack the capability of specifying URLs as found in HTML documents. Consequently, analysis of XML documents during application development is limited to analysis within the runtime environment during execution of the XML documents, since application-specific information used by the application server within the runtime environment is not explicitly specified in the XML documents. Hence, applications defined by XML documents currently cannot be analyzed outside the application runtime environment using existing web development tools configured for analysis according to HTML protocol.
There is a need for an arrangement that enables an XML document to be analyzed independent of execution in its native XML runtime environment, while maintaining XML-based content information and linking information determined during execution in the native runtime environment. In particular, there is a need for an arrangement that enables the content information and linking information for an XML document during runtime execution to be preserved for analysis using web development tools.
There is also a need for an arrangement that enables an application defined by runtime execution of a plurality of XML documents to be analyzed using web-master oriented web site management tools that rely on HTML-based URLs for linking information.
These and other needs are attained by the present invention, where a system is configured for translating information present during runtime execution of an extensible markup language (XML) document into a hypertext markup language (HTML) document. The system converts the XML document into an HTML document in a manner that is reversible, where all the information from the original XML document is preserved such that the HTML document can be converted back to the original XML document. In addition, the system supplies HTML-compliant formatting information to specifically identify formatting specifications for XML tags having implied formatting characteristics during runtime execution of the XML document. Moreover, the system generates HTML-compliant reference tags for each XML tag that refers to another XML object, based on the context of the XML tag during the runtime execution of the XML document. Hence, the generated HTML document includes all information used during runtime execution of the XML document, enabling the use of web analysis tools to analyze XML-defined applications by analyzing the HTML document for the structure of the XML document relative to other XML documents used to define the XML-defined application.
According to one aspect of the present invention, a method is provided in an executable system for generating a new hypertext markup language (HTML) document representing an extensible markup language (XML) document. The method includes copying into the new HTML document text from the XML document, and resolving shared symbols of XML tags from within the text in the new HTML document. The method also includes first inserting into the HTML document HTML-compliant formatting information for selected XML objects within the text of the HTML document based on formatting characteristics determined during runtime execution of the XML document, and second inserting into the HTML document an HTML-compliant reference tag for each corresponding XML reference object in the text within the HTML document based on context information determined during runtime execution of the XML document. The resolving of shared symbols ensures that the XML tags illustrated as text within the HTML document cannot interfere with the HTML tags. Moreover, the insertion of the HTML-compliant formatting information and the HTML-compliant reference tag ensures that information implicit within the XML document during execution of the XML document within an application runtime environment is explicitly specified within the HTML document. Hence, the HTML document includes all information necessary to accurately describe the XML document, enabling the use of web-based application development tools to analyze the XML document relative to other XML documents used to define an application.
Another aspect of the present invention provides a system configured for executing an application defined by XML documents. The system includes a storage medium for storing the XML documents, and an application server configured for executing the XML documents in an application runtime environment. The application server includes a conversion module configured for generating a new hypertext markup language (HTML) document representing a corresponding one of the XML documents. The conversion module generates the new HTML document by copying text from the one XML document into the new HTML document, adding to the HTML document formatting information for selected XML objects within the one XML document and parsed by the application server within the application runtime environment, and adding to the HTML document an HTML-compliant reference tag for each XML object referenced by the one XML document according to the application runtime environment.
Additional advantages and novel features of the invention will be set forth in part in the description which follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The advantages of the present invention may be realized and attained by means of instrumentalities and combinations particularly pointed out in the appended claims.